package bank

var (
	sema    = make(chan struct{}, 1) // 用来保护 balance 的二进制信号量
	balance2 int
)

func Deposit2(amount int) {
	sema <- struct{}{} // 获取令牌
	balance2 = balance2 + amount
	<-sema // 释放令牌
}

func Balance2() int {
	sema <- struct{}{} // 获取令牌
	b := balance2
	<-sema // 释放令牌
	return b
}
